package versao6;

import javax.swing.JFileChooser;
import javax.swing.JOptionPane;

import java.beans.XMLEncoder;
import java.io.BufferedReader;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.util.ArrayList;

public class LerCalendario {

    private String arquivoSelecionado;
    private String diretorio;
    private ArrayList<Calendario> calendario = new ArrayList<Calendario>();
    String nomeArquivoXML = "F1.xml";

    public String getNomeArquivoXML() {
        return diretorio + "/" + nomeArquivoXML;
    }

    public void abrir() {
        JFileChooser escolha = new JFileChooser();
        escolha.setDialogTitle("Escolha o arquivo calend�rio.txt");

        int retorno = escolha.showOpenDialog(null);

        if (retorno == JFileChooser.APPROVE_OPTION) {
            arquivoSelecionado = escolha.getSelectedFile().toString();
            System.out.println(arquivoSelecionado);

            diretorio = escolha.getSelectedFile().getParent();
            System.out.println(diretorio);

        } else {
            JOptionPane.showMessageDialog(escolha,
                    "Arquivo(s) n�o selecionado(s)", "Erro",
                    JOptionPane.ERROR_MESSAGE);
            System.exit(1);
        }
    }

    public void ler() {
        try {

            FileReader fileReader = new FileReader(arquivoSelecionado);
            BufferedReader bufferedReader = new BufferedReader(fileReader);
            String linha = "";
            while ((linha = bufferedReader.readLine()) != null) {
                String[] vet = linha.split(";");

                Calendario c = new Calendario();
                c.setNumCorrida(Integer.parseInt(vet[0]));
                c.setNomeEtapa(vet[1]);
                c.setData(vet[2]);
                c.setNumVoltasPrevistas(Integer.parseInt(vet[3]));

                calendario.add(c);
            }

            fileReader.close();
            bufferedReader.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public void escrever() {
        try {
            XMLEncoder xmlEncoder = null;
            try {
                xmlEncoder = new XMLEncoder(new FileOutputStream(getNomeArquivoXML()));
                xmlEncoder.writeObject(calendario);

            } finally {
                if (xmlEncoder != null) {
                    xmlEncoder.close();
                }
            }
        } catch (IOException e) {
            System.out.println(e.getMessage());
        }
    }
}
